package com.example.leetcode.trainingcamp.week7.Thursday;

/**
 * 给你二叉树的根结点 root ，请你将它展开为一个单链表：
 *
 * <p>展开后的单链表应该同样使用 TreeNode ，其中 right 子指针指向链表中下一个结点，而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 顺序相同。
 *
 * <p>来源：力扣（LeetCode） 链接：https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class Test114 {

    TreeNode head = new TreeNode(-101);
    TreeNode tail = head;

    public void flatten(TreeNode root) {
        if (root == null) return;
        TreeNode left = root.left;
        TreeNode right = root.right;
        tail.right = root;
        tail = root;
        root.left = null;
        flatten(left);
        flatten(right);
    }
}
